package com.slipper.system.employee.dao;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.slipper.system.employee.bo.EmployeeBO;

/**
 * 员工信息表
 */
public interface EmployeeDao {

    int insert(EmployeeBO bo);

    int update(EmployeeBO bo);

    int delete(EmployeeBO bo);

    EmployeeBO queryBy(@Param("id") String id);

    int updatePassword(EmployeeBO bo);

    List<EmployeeBO> queryList(EmployeeBO bo);

    List<EmployeeBO> queryListWithOrg(EmployeeBO bo);

    List<EmployeeBO> queryByIds(EmployeeBO bo);

    void saveEmployeeOrganization(
            @Param("id") String id,
            @Param("employeeId") String employeeId,
            @Param("organizationId") String organizationId);

    int deleteEmployeeOrganization(String employeeId);

    int saveEmployeeRole(
            @Param("id") String id,
            @Param("employeeId") String employeeId,
            @Param("roleId") String roleId);

    int deleteEmployeeRole(String employeeId);

    int queryUseBy(EmployeeBO bo);

    List<EmployeeBO> queryByLogin(EmployeeBO bo);

    void updateOrganization(EmployeeBO employee);

    int updateTheme(EmployeeBO employee);

    Map<String, Object> queryMapData(String id);
}
